cook-levin theorem geeksforgeeks